
package m2acsis.algebre ;

/**
 * Interface de manipulation d'un Groupe quelconque.
 * 
 * @author Yann Viémont
 * 
 */
public interface ElemGroupe
  {

    /**
     * Ajoute un élément de groupe passé en paramétre à l'élément
     * exécutant la méthode.
     * 
     * @param e deuxième opérande de la somme.
     * @return le résultat de la somme.
     */
    ElemGroupe somme (ElemGroupe e) ;


    /**
     * Rend l'élément neutre du groupe.
     * 
     * @return l'élément de groupe qui est l'élément neutre (ou null
     *         s'il n'y en a pas).
     */
    ElemGroupe neutre () ;


    /**
     * Rend l'opposé dans le groupe de l'élément qui exécute la méthode.
     * 
     * @return l'élément opposé s'il existe ou null.
     */
    ElemGroupe oppose () ;
  }
